﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using UAXInversionesWeb.logicaNegocio;
using System.Drawing;

namespace UAXInversionesWeb.supervisor
{
    public partial class DarDeBajaClienteS : System.Web.UI.Page
    {
        protected override void OnInit(EventArgs e)
        {
            base.OnInit(e);
            if (HttpContext.Current.Session["logueado"] != null)
            {
                Solicitudes[] sol = Proxy.getBajasSolicitadas();

                IdClienteDB.Items.Clear();
                if (sol == null)
                {
                    Response.Redirect("PaginaPrincipalSupervisor.aspx?case=solBaja");
                }

                for (int i = 0; i < sol.Length; i++)
                {
                    IdClienteDB.Items.Add(new ListItem(sol[i].getIdCliente().ToString()));
                }
            }
        }
        
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void checkUserDB_Click(object sender, EventArgs e)
        {
            int idcliente = Int32.Parse(IdClienteDB.SelectedValue);
            if (Int32.TryParse(IdClienteDB.SelectedValue, out idcliente))
            {
                Solicitudes[] sol = Proxy.getBajasSolicitadas();

                for (int j = 0; j < sol.Length; j++)
                {
                    if (idcliente == sol[j].getIdCliente())
                    {
                        nombreCliente.Text = Proxy.getNombreCliente(idcliente);

                        double saldo = Proxy.consultarSaldo(idcliente);

                        if (saldo > 0)
                        {
                            saldoCliente.ForeColor = Color.Green;
                            saldoCliente.Text = saldo.ToString("N");
                            razonBaja.Text = sol[j].getRazon();
                            confirmBaja.Enabled = true;
                            bajaClienteButton.Enabled = true;
                        }
                        else
                        {
                            saldoCliente.ForeColor = Color.Red;
                            saldoCliente.Text = saldo.ToString("N");
                        }
                        break;
                    }
                }
            }
        }

        protected void bajaClienteButton_Click(object sender, EventArgs e)
        {
            if (confirmBaja.Checked)
            {
                int idcliente = Int32.Parse(IdClienteDB.SelectedValue);
                double saldo = Proxy.consultarSaldo(idcliente);

                // le devolvemos el dinero que le queda
                if (saldo > 0.0)
                {
                    Proxy.realizarIngreso(idcliente, saldo);
                }

                bool resultado = Proxy.bajaCliente(idcliente);
                resultado = Proxy.eliminarSolicitudBaja(idcliente);

                if (resultado)
                {
                    Response.Write("<script>alert('El usuario ha sido dado de baja correctamente.')</script>");
                    IdClienteDB.SelectedIndex = 0;
                    nombreCliente.Text = "";
                    saldoCliente.Text = "";
                    confirmBaja.Enabled = false;
                    confirmBaja.Checked = false;
                    bajaClienteButton.Enabled = false;
                }
            }
            else
            {
                Response.Write("<script>alert('Por favor, confirme que desea dar de baja a este cliente.')</script>");
            }
        }
    }
}